package models

import (
	"dache-server/basic/config"
	"gorm.io/gorm"
	"time"
)

type Car struct {
	Id            uint           `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	UserId        uint           `gorm:"column:user_id;type:bigint UNSIGNED;not null;default:0;" json:"user_id"`
	CarColor      string         `gorm:"column:car_color;type:varchar(255);not null;" json:"car_color"`
	CarType       string         `gorm:"column:car_type;type:varchar(255);comment:汽车类型;not null;" json:"car_type"`                             // 汽车类型
	CarBrand      string         `gorm:"column:car_brand;type:varchar(255);comment:汽车品牌;not null;" json:"car_brand"`                           // 汽车品牌
	DrivingNumber string         `gorm:"column:driving_number;type:varchar(255);comment:行驶证号;not null;" json:"driving_number"`                 // 行驶证号
	CarNumber     string         `gorm:"column:car_number;type:varchar(50);comment:车牌号;not null;" json:"car_number"`                           // 车牌号
	SeatNum       uint           `gorm:"column:seat_num;type:int UNSIGNED;comment:座位数;not null;default:0;" json:"seat_num"`                    // 座位数
	CarImg        string         `gorm:"column:car_img;type:varchar(255);comment:车辆照片;not null;" json:"car_img"`                               // 车辆照片
	CarStatus     uint           `gorm:"column:car_status;type:int UNSIGNED;comment:车辆审核状态: 1：待审核 2：审核通过 3：审核未通过;not null;" json:"car_status"` // 车辆审核状态: 1：待审核 2：审核通过 3：审核未通过
	CreatedAt     time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt     time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt     gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}

func (c *Car) TableName() string {
	return "car"
}

// 添加车辆
func (c *Car) AddCar() error {
	return config.DB.Create(c).Error
}

// 车型列表展示
func (c *Car) GetCarList() (carList []*Car, err error) {
	err = config.DB.Model(&c).Where("car_type = ?", c.CarType).Find(&carList).Error
	return

}
